Доброго времени суток!
Я - тупой, к сожалению, ....
Вот ajax запрос с проверкой на JQuery validate;
$('#myForm').validate({
rules:{
name_user_forms:{
required: true,
minlength:4
},
tel_user_forms:{
required: true
},
user_email_forms:{
required:true,
email: true
},
user_tema_forms:{
required:true,
minlength:8
},
user_text_forms:{
required:true,
minlength:10
},
user_yes_forms:{
required:true
}
},
submitHandler: function(form) {
$.ajax({
url: 'formsMail.php',
type: 'POST',
dataType: 'html',
data: $(form).serialize(),
})
.done(function() {
$('#result_form').text('Сообщение отправлено!');
$("#myForm").trigger("reset");
})
.fail(function() {
$('#result_form').text('Ошибка, что то сломалось!');
$("#myForm").trigger("reset");
});
return false;
}
});
$.validator.addMethod(
"regex",
function(value, element, regexp) {
var re = new RegExp(regexp);
return this.optional(element) || re.test(value);
}
);
$("#myFormName").rules("add", { regex: "^[а-яА-ЯЁё ]+$" });
$("#myFormTema").rules("add", { regex: "^[а-яА-ЯЁё ]+$" });
$("#myFormMessage").rules("add", { regex: "^[а-яА-ЯЁё ]+$" });
И он работает, я проверял.
И вот код для проверки ответа пользователя на капчу из оф. документации, отправка GET запроса:
const https = require('https'),
querystring = require('querystring');
const SMARTCAPTCHA_SERVER_KEY = "<ключ_сервера>";
function check_captcha(token, callback) {
const options = {
hostname: 'smartcaptcha.yandexcloud.net',
port: 443,
path: '/validate?' + querystring.stringify({
secret: SMARTCAPTCHA_SERVER_KEY,
token: token,
ip: '<IP-адрес_пользователя>', // Способ получения IP-адреса пользователя зависит от вашего фреймворка и прокси.
}),
method: 'GET',
};
const req = https.request(options, (res) => {
res.on('data', (content) => {
if (res.statusCode !== 200) {
console.error(`Allow access due to an error: code=${res.statusCode}; message=${content}`);
callback(true);
return;
}
callback(JSON.parse(content).status === 'ok');
});
});
req.on('error', (error) => {
console.error(error);
callback(true);
});
req.end();
}
let token = "<токен>";
check_captcha(token, (passed) => {
if (passed) {
console.log("Passed");
} else {
console.log("Robot");
}
});
И эти два кода работают отдельно друг от друга...
А как сделать, что бы отправка почты происходила после проверки капчи?
У кого есть опыт, расскажите дураку, пожалуйста!
Благодарю!